package cn.com.validate;

import java.util.regex.Matcher;
import java.util.regex.Pattern;


/**
 * 验证工具调用类
 * 		1、所有工具类型的调用入口
 * 		2、如果工具类没有校验的方法，可以自定义一个正则表达式，使用match(reg,str)方法校验
 * 
 * @author WangGuangshuo/2016年5月16日
 *
 */
public class Reg extends RegCommon{
	

	/**
	 * 验证指定字符串是否符合指定规则
	 * @param regex 正则表达式
	 * @param str   被校验的字符串
	 * @return
	 */
	public static boolean match(String regex, String str) {
		Pattern pattern = Pattern.compile(regex);
		Matcher matcher = pattern.matcher(str);
		return matcher.matches();
	}
	
	/**
	 * 验证手机号
	 * @param mobile
	 * @return
	 */
	public static boolean checkMobile(String mobile){
		return match(RegExpression.REG_MOBILE, mobile);
	}
	
	/**
	 * 验证邮箱地址
	 * @param email
	 * @return
	 */
	public static boolean checkEmail(String email){
		return match(RegExpression.REG_EMAIL, email);
	}
	
	/**
	 * 验证日期格式和日期范围
	 * 
	 * 日期格式：xxxx/xx/xx    xxxx-xx-xx  xxxxxxxx
	 * @param date
	 * @return
	 */
	public static boolean checkDate(String date){
		return match(RegExpression.REG_DATE, date);
	}
	
	/**
	 * 验证ip地址
	 * @param str
	 * @return
	 */
	public static boolean checkIP(String str) {
		return match(RegExpression.REG_IP, str);
	}
	
	/**
	 * 验证身份证号码
	 * @param id
	 * @return
	 */
	public static boolean checkId(String id){
		return match(RegExpression.REG_IDENTITY, id);
	}
}
